package clasificador.genetico.reglas;

import java.util.Random;

import clasificador.genetico.PoliticaMutacion;

public class PoliticaMutacionReglas implements PoliticaMutacion<TGenotipo> {

    private double probMutacion;
    private Random r;
    private GeneradorReglas generador;

    public PoliticaMutacionReglas(GeneradorReglas generador, double probMutacion) {
        this.probMutacion = probMutacion;
        this.r = new Random();
        this.generador = generador;
    }

    @Override
    public boolean mutar(TGenotipo c) {
        int tam = c.size();
        for (int i = 0; i < tam; i++) {
            // Eliminar reglas
            /*if (r.nextDouble() < probMutacion) {
                c.remove(i);
                tam--;
                i--;
                continue;
            }*/

            for (int j = 0; j < c.get(i).l().length; j++) {
                if (r.nextDouble() < probMutacion) {
                    c.get(i).l()[j] = r.nextInt();
                }
            }
        }

        // Anadir reglas
        /*while (r.nextDouble() < probMutacion) {
            c.add(generador.generarRegla());
        }*/
        return true;
    }
}
